Books and magazines often contain pages containing audacious mixtures of color images and text. The present invention relates to a fast and efficient method of coding partially-masked image information of such documents by wavelet coding without wasting bits on the image data that is masked by foreground text.
A simplified block diagram of a wavelet coding system is shown in FIG. 1. The system includes an encoder 100 and a decoder 200. The encoder 100 codes input image information according to wavelet compression techniques and outputs coded image data to a channel 300. The coded image data includes wavelet coefficients representing the image data. The decoder 200 retrieves the coded image data from the channel 300 and decodes it according to wavelet decompression techniques.
Multi-resolution wavelet decomposition is one of the most efficient schemes for coding color images. These schemes involve several operations: color space transform, image decomposition, coefficient quantization and coefficient coding.
Image information to be coded is represented as a linear combination of locally supported wavelets. An example of wavelet support is shown in FIG. 2(a). Wavelets extend over a predetermined area of image display. For the length of every wavelet such as W.sub.0, two other wavelets W.sub.1a and W.sub.1b extend half of its length. The length of each underlying wavelet W.sub.1a, W.sub.1b is itself supported by two other wavelets W.sub.2a, W.sub.2b, W.sub.2C and W.sub.2d. This support structure may continue until a wavelet represents only a single pixel.
Image data may be coded as a linear combination of the wavelets. Consider the image data of FIG. 2(b). As shown in FIG. 2(c), the image data may be considered as a linear combination of the wavelets of FIG. 2(a). To represent the image data, only the coefficients of the wavelets that represent the image data need by coded. The image data of FIG. 2(b) may be coded as:
__________________________________________________________________________ W.sub.0 W.sub.1a W.sub.1b W.sub.2a W.sub.2b W.sub.2c W.sub.2d W.sub.3a W.sub.3b W.sub.3c W.sub.3d W.sub.3e W.sub.3f W.sub.3g W.sub.3h __________________________________________________________________________ 1 0 1 0 0 1 0 0 5 0 0 0 0 3 0 __________________________________________________________________________
Because most of the wavelet coefficients are zero, the coefficients themselves may be coded using highly efficient coding methods.
The linear combination of coefficients can be expressed in matrix notation as: EQU Aw=x (1)
where w is a vector of wavelet coefficients, x is a vector of pixel values, and A is a square matrix whose columns represent the wavelet basis. Matrix A usually describes an orthogonal or nearly orthogonal transformation. When a decoder 200 is given the wavelet coefficient, then it may generate the image data x using the process of Equation. 1. Efficient multi-scale algorithms perform image decomposition (i.e. computing A.sup.-1 x) and image reconstruction (i.e. computing Aw) in time proportional to the number of pixels in the image.
In practice, most image data is smooth. It differs from the exemplary image data of FIG. 2(b) in that the image data generally does not possess abrupt variations in image value. Whereas the image data used in the example of FIG. 2(b) possesses significant energy in the coefficients of shorter wavelets, natural image data does not often possess energy in these coefficients.
The image local smoothness ensures that the distribution of the wavelet coefficients is sharply concentrated around zero. High compression efficiency is achieved using quantization and coding schemes that take advantage of this peaked distribution.
When a unitary source of information, such as a page of a book or magazine, contains both text and image data, the text may be considered as a "mask" that overlays image data beneath the text. Coding of any part of the image data beneath the masking text becomes unnecessary because the text will mask it from being observed. In the case of wavelet encoding. Masked wavelets need not be coded.
When image data is masked, the mask blocks image data thereunder from being observed. Coding errors that are applied to masked image data are unimportant because the masked image data will be replaced with data from the mask. Also, the mask disrupts the smoothness of the image data. It introduces sharp differences in the value of the image data at the boundaries between the image and the foreground text. Coding of the sharp differences would cause significant energy to be placed in the short wavelet coefficients, which would cause coding inefficiencies to arise in coding the image data. Such coding inefficiencies are particularly undesirable because coding errors that occur below the mask will be unnoticed at the decoder where the mask will overlay the erroneous image data. Accordingly, there is a need in the art for a image coder that codes masked image data efficiently.